package org.linlinjava.litemall.web.vo;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@Data
@ApiModel(value="获取订单详情响应类",description="获取订单详情响应类")
public class OrderDetailResponseVO {
	
	@ApiModelProperty(value = "id")
    private Integer id;
	@ApiModelProperty(value = "店铺id")
	private Integer shopId;
	@ApiModelProperty(value = "订单编号")
    private String orderSn;
	@ApiModelProperty(value = "设备编号")
	private String deviceNo;
	@ApiModelProperty(value = "订单序号(每天按顺序生成)")
	private Integer serialNo;
	@ApiModelProperty(value = "订单费用")
	private BigDecimal orderPrice;
	@ApiModelProperty(value = "优惠券减免费用")
	private BigDecimal couponPrice;
	@ApiModelProperty(value = "实付费用")
    private BigDecimal actualPrice;
	@ApiModelProperty(value = "商品总费用")
	private BigDecimal goodsPrice;
	@ApiModelProperty(value = "税价")
    private BigDecimal taxPrice;
	@ApiModelProperty(value = "订单状态：0.新建;1.挂起;2.待支付;3.进行中;4.已取餐;5.已完成;6:已取消")
	private Short orderStatus;
	@ApiModelProperty(value = "订单来源：1:手机app下单,2:门店下单,3:官网商城,4:订阅")
	private Byte orderSource;
	@ApiModelProperty(value = "订单类型：1自提，2配送，3堂食，4外带")
	private Byte orderType;
	@ApiModelProperty(value = "支付方式：1:现金支付,2:礼物卡支付,3:Paypal支付,4:余额支付,5:Clover支付")
	private Byte payType;
	@ApiModelProperty(value = "制作状态：0:待制作,1:制作中,2:已取餐")
	private Byte madeStatus;
	@ApiModelProperty(value = "付款id(Clover支付时，为支付id)")
	private String payId;
	@ApiModelProperty(value = "外部支付订单id(Clover支付时才有值，为支付订单id)")
	private String outTradeNo;
	@ApiModelProperty(value = "原始订单编号(当订单为重做订单时有值)")
	private String originalSn;
	@ApiModelProperty(value = "是否重做订单")
	private Boolean isRepeat;
	@ApiModelProperty(value = "创建时间")
	private LocalDateTime addTime;
	@ApiModelProperty(value = "用户可余额")
    private BigDecimal userAvailableAmount;
	@ApiModelProperty(value = "订单现金支付详情")
	private OrderDetailCashVO cashDetail;

	private List<OrderDetailGoodsVO> goodsList;

	private Integer orderGoodsId;

	private String barCode;

	private Integer serinalNumber;

}
